home *** CD-ROM | disk | FTP | other *** search
- package sun.net.www;
-
- import java.io.InputStream;
-
- abstract class MimeTable {
- private MimeEntry root;
- private MimeEntry last;
-
- void add(MimeEntry var1) {
- if (var1 != null) {
- if (this.last == null) {
- this.root = var1;
- } else {
- this.last.next = var1;
- }
-
- this.last = var1;
- }
-
- }
-
- MimeEntry find(String var1) {
- for(MimeEntry var2 = this.root; var2 != null; var2 = var2.next) {
- if (var2.matches(var1)) {
- return var2;
- }
- }
-
- return null;
- }
-
- void ParseMailcap(InputStream var1) {
- try {
- char[] var2 = new char[200];
- int var3 = 0;
- int var5 = 0;
- int var6 = -1;
- String var7 = null;
- String var8 = null;
- String var9 = null;
-
- int var4;
- while((var4 = var1.read()) >= 0) {
- if (var4 != 59 && var4 != 10) {
- if (var4 == 35 && var3 == 0) {
- while((var4 = var1.read()) >= 0 && var4 != 10) {
- }
- } else {
- if (var4 == 92) {
- var4 = var1.read();
- if (var4 == 10) {
- continue;
- }
- }
-
- if ((var4 > 32 || var3 > 0) && var3 < var2.length) {
- if (var4 == 61) {
- var6 = var3;
- }
-
- var2[var3++] = (char)var4;
- }
- }
- } else {
- while(var3 > 0 && var2[var3 - 1] < ' ') {
- --var3;
- }
-
- if (var5 <= 1) {
- if (var5 == 0 && var3 > 0 && var2[var3 - 1] == '*') {
- --var3;
- }
-
- String var10;
- if (var3 == 0) {
- var10 = "";
- } else {
- var10 = String.copyValueOf(var2, 0, var3);
- }
-
- if (var5 == 0) {
- var7 = var10;
- } else {
- var8 = var10;
- }
- } else if (var3 > 0) {
- String var11;
- String var14;
- if (var6 >= 0) {
- var14 = String.valueOf(var2, 0, var6);
- var11 = String.copyValueOf(var2, var6 + 1, var3 - var6 - 1);
- } else {
- var14 = String.valueOf(var2, 0, var3);
- var11 = null;
- }
-
- if (var14.equalsIgnoreCase("nametemplate")) {
- var9 = var11;
- }
- }
-
- ++var5;
- var3 = 0;
- if (var4 == 10) {
- if (var5 >= 2) {
- this.add(new MimeEntry(var7.toLowerCase(), var8, var9));
- }
-
- var5 = 0;
- }
- }
- }
-
- } catch (Exception var12) {
- }
- }
-
- abstract String TempTemplate();
- }
-